using System;
using System.Text;
using System.Reflection;
using System.ServiceModel;
using System.Collections.Generic;
using System.Runtime.Serialization;
using TDS = Tridion.ContentManager.Interop.TDS;
using TDSDefines = Tridion.ContentManager.Interop.TDSDefines;



#pragma warning disable 649
namespace Tridion.Gateway
{
	[DataContract]
	public class PublicationTarget:Facade
	{
        internal PublicationTarget(TDS.PublicationTarget PublicationTarget, bool ShallowCopy)
            : base(typeof(TDS._PublicationTarget), PublicationTarget, ShallowCopy)
		{
		}

		[DataMember(Name="itemType")]
		private TDSDefines.ItemType itemtype;
		public TDSDefines.ItemType itemType
		{
			 get { return itemtype; }
		}


		[DataMember(Name="ID")]
		private String id;
		public String ID
		{
			 get { return id; }
		}


		[DataMember(Name="Info")]
		private Info info;
		public Info Info
		{
			 get { return info; }
		}


		[DataMember(Name="Title")]
		private String title;
		public String Title
		{
			 get { return title; }
			 set { title = value; }
		}


		[DataMember(Name="DefaultCodePage")]
		private Int32 defaultcodepage;
		public Int32 DefaultCodePage
		{
			 get { return defaultcodepage; }
			 set { defaultcodepage = value; }
		}


		[DataMember(Name="Description")]
		private String description;
		public String Description
		{
			 get { return description; }
			 set { description = value; }
		}


		[DataMember(Name="Destinations")]
		private TargetDestination[] destinations;
		public TargetDestination[] Destinations
		{
			 get { return destinations; }
			 set { destinations = value; }
		}


		[DataMember(Name="MinimalApprovalStatus")]
		private ApprovalStatus minimalapprovalstatus;
		public ApprovalStatus MinimalApprovalStatus
		{
			 get { return minimalapprovalstatus; }
			 set { minimalapprovalstatus = value; }
		}


		[DataMember(Name="TargetLanguage")]
		private TDSDefines.EnumTDSServerSideLanguages targetlanguage;
		public TDSDefines.EnumTDSServerSideLanguages TargetLanguage
		{
			 get { return targetlanguage; }
			 set { targetlanguage = value; }
		}


		[DataMember(Name="TargetTypes")]
		private TargetType[] targettypes;
		public TargetType[] TargetTypes
		{
			 get { return targettypes; }
			 set { targettypes = value; }
		}


		[DataMember(Name="AllowedPublications")]
		private PublicationURI[] allowedpublications;
		public PublicationURI[] AllowedPublications
		{
			 get { return allowedpublications; }
			 set { allowedpublications = value; }
		}


		[DataMember(Name="Priority")]
		private TDSDefines.EnumPublishPriority priority;
		public TDSDefines.EnumPublishPriority Priority
		{
			 get { return priority; }
			 set { priority = value; }
		}


        protected override void Initialize(FieldInfo field, PropertyInfo property, Object value)
        {

        }

	}
}

/*
			System.String GetXML(Tridion.ContentManager.Interop.TDSDefines.XMLReadFilter)
			Void UpdateXML(System.String)
			Void Save(Boolean)
			Void Delete()
*/
